using System;
using System.Collections.Generic;
using System.Text;

namespace TuMama
{
    [Serializable]
    public class Mensaje
    {
        public enum message { tumama, poll, sendListaJugadores ,ready, start, sendQuiz, sendScore, youWinBitch, youLoser, login, doLogin, waiting, doWaiting, sendCancion, okCancion };
        public enum tipoObjeto { Quiz, Cancion, Jugador, ListaJugadores, NULL };
        private Dictionary<tipoObjeto, Object> item;
        private message mensaje;
        //ArrayList waga = (ArrayList)tumama();

        public Mensaje(Object o, tipoObjeto t, message m)
        {
            item = new Dictionary<tipoObjeto, object>();
            mensaje = m;
            item.Add(t, o);
        }

        public Dictionary<tipoObjeto, object> Item
        {
            get
            {
                return this.item;
            }
        }

        public Mensaje.message Message
        {
            get
            {
                return this.mensaje;
            }
        }

        public object Objeto
        {
            get
            {
                Object x = new Object();
                Dictionary<tipoObjeto, Object>.KeyCollection waga = item.Keys;
                foreach (Mensaje.tipoObjeto w in waga)
                {
                    x = item[w];
                }
                return x;
            }
        }

        public tipoObjeto Tipo
        {
            get
            {
                tipoObjeto x = tipoObjeto.NULL;
                Dictionary<tipoObjeto, Object>.KeyCollection waga = item.Keys;
                foreach (Mensaje.tipoObjeto w in waga)
                {
                    x = w;
                }
                return x;

            }
        }

        public override string ToString()
        {
            String ret = "";
            Dictionary<tipoObjeto, Object>.KeyCollection waga = item.Keys;
            foreach (Mensaje.tipoObjeto w in waga)
            {
                if (w != Mensaje.tipoObjeto.NULL )
                    ret = "objeto : " + item[w].ToString();
                else
                    ret = "objeto : null";
            }
            return ret;
        }
    }
}
